TPC: Add scaling of VDrift with T/P#14602
Conversation
matthias-kleiner
commented
Aug 19, 2025
- scaling of the VDrift is automatically enabled
- the reference T/P is extracted for VDrift objects without stored T/P if firstTime and lastTime of VDrift object is in the range +-20 minutes of available temperature and pressure
- scaling with T/P can be disabled by setting 'TPCGasParam.Temperature=0;TPCGasParam.Pressure=0'
- reference T/P is extracted automatically for online created VDrift with ITSTgl and laser method
- add storing of temperature, pressure and used VDrift in timeseries
- scaling of the VDrift is automatically enabled - the reference T/P is extracted for VDrift objects without stored T/P if firstTime and lastTime of VDrift object is in the range +-20 minutes of available temperature and pressure - scaling with T/P can be disabled by setting 'TPCGasParam.Temperature=0;TPCGasParam.Pressure=0' - reference T/P is extracted automatically for online created VDrift with ITSTgl and laser method - add storing of temperature. pressure and used VDrift in timeseries
|
REQUEST FOR PRODUCTION RELEASES: This will add The following labels are available |
| newVRef = normVDrift; // no T/P scaling applied | ||
| } else { | ||
| // linear scaling based on relative change of T/P | ||
| newVRef = normVDrift * (1 + (tp - refTP) / refTP); |
There was a problem hiding this comment.
@matthias-kleiner I am wondering if this is what we want. The original reason behind this complicated normalizations was to have
a reasonable refVDrift constant over the whole, so that the residuals extraction calibration, which have granularity different from that of VDrift, would use the same refVDrift value, see
AliceO2/Detectors/TPC/calibration/SpacePoints/src/TrackInterpolation.cxx
Lines 1127 to 1133 in 89bef8a
Therefore, the variation of the full VDrift was provided via time-dependent
corrFact.
In the current code, the normalize method does not modify the result of getVDrift(), it is just
- setting the
refVDriftto the requestednewVRefif it isnon-0and readjusts thecorrFactto have the full VDrift unchanged (used to make sure that the next calibration slot creates VDrift with the same reference),
or - at the 1st call w/o argument normalizes
refVDriftto full VDrift and therefore sets the corrections to 1 (to have therefVDriftas correct as possible).
This change will not only scale the final getVDrift() value by the relative T/P change (which is OK) but will also modify the refVDrift according to the current meteo condition. Should not instead just corrFact (and refTP) adjusted to account for changed T/P?
There was a problem hiding this comment.
Hi @shahor02 , thanks for the comment and information. I was not aware of that specific reason why we wanted to have a constant refVDrift. In that case, we should indeed simply adjust the corrFact to account for changes in the T/P.
|
Before we merge it: was it tested with real data? |
|
Hello @shahor02 ,
|
|
Thanks @matthias-kleiner ! |
* TPC: Add scaling of VDrift with T/P - scaling of the VDrift is automatically enabled - the reference T/P is extracted for VDrift objects without stored T/P if firstTime and lastTime of VDrift object is in the range +-20 minutes of available temperature and pressure - scaling with T/P can be disabled by setting 'TPCGasParam.Temperature=0;TPCGasParam.Pressure=0' - reference T/P is extracted automatically for online created VDrift with ITSTgl and laser method - add storing of temperature. pressure and used VDrift in timeseries * VDrift: Keep refVDrift constant by changing corrFact with T/P

